Цифровой элемент

Сайт использует файлы cookie для удобства работы, аналитики и рекламы. Нажимая «Принять» или продолжая пользоваться d-element.ru, вы соглашаетесь с нашей Политикой конфиденциальности и обработкой персональных данных (включая файлы cookie).

Разработка мобильных приложений

для платформ iOS и Android, которые интегрируем с любыми системами. Проведем маркетинговый анализ и ASO-оптимизация.

Оставить заявку на разработку мобильного приложения
...
Мобильная разработка
right-dots

Типы мобильных приложений

  • Личный кабинет

    Удобный и комфортный способ для пользователя по работе с вашей компанией. В свою очередь вы имеете прямой доступ к своим клиентам, и сможете настроить автоматизацию процессов: биллинг, напоминания об оплате, допродажи.

  • eCommerce

    Один из самых важных каналов онлайн-продаж для современного ритейла, который помогает получать заказы и лояльность клиентов. Преимущества такого варианта заключатся в бонусной системе, сегментации клиентов и экономии на SMS (доставка уведомлений через push).

  • Интранет, мобильные рабочие места

    Полноценные удаленные рабочие места в смартфоне или планшете для повышения эффективности сотрудников компании, которые работают удалённо. Важные функции приложения: геймификация, быстрый доступ к задачам, документам, CRM, отчеты и отслеживание геопозиции сотрудников.

  • Специальные приложения

    Это приложения, которые выполняют особые функции, например, видеонаблюдение или приложение для проведения конференций или других мероприятий.

Конечно же, в одном мобильном приложении может быть сразу несколько функциональностей.

Этапы разработки мобильного приложения

Разработка мобильных приложений— это важнейший этап в развитии любой компании, позволяющий привлекать и удерживать новых клиентов, увеличивать продажи и систематизировать ведение бизнеса. Чтобы мобильное приложение работало эффективно и принесло желаемый результат необходимо выполнять работу поэтапно.

Процесс разработки мобильного приложения

  • Документация и аналитика

    Документация и аналитика

    Подготовительный этап. Проектирование и бизнес-аналитика, разработка технического задания, UI/UX.
  • Дизайн

    Дизайн

    Разработка интерфейса мобильного приложения и графических элементов.
  • Разработка

    Разработка

    Программная разработка проекта, отладка и тестирование.
  • MVP версия

    MVP версия

    Минимально жизнеспособная версия проекта, для получения обратной связи от пользователей.
  • Разработка

    Разработка

    Программная разработка полноценной версии проекта, отладка и тестирование.
  • Релиз проекта

    Релиз проекта

    Публикация в Apple AppStore и Google Play. Запуск маркетинговой компании и продвижения.
  • Поддержка

    Поддержка

    Техническая поддержка проекта, добавление новых функций, сопровождение проекта и пользователей.

Предпроектное обследование

Предпроектное обследование – на данном этапе мы погружаемся в ваш бизнес, проводим маркетинговый анализ проекта, формируем стратегию digital-маркетинга, разрабатываем детальное техническое задание, разрабатываем креативную дизайн-концепцию и составляем план-график работ.

Маркетинговый анализ проекта

Формулируем цели и задачи мобильного приложения, изучаем ваш продукт, ваши бизнес-процессы, определяем и сегментируем целевую аудиторию, анализируем конкурентов, описываем пользовательские пути и сценарии.

Получить коммерческое предложение

Разработка технического задания

Проектируем и утверждаем структуру будущего мобильного приложения, описываем технические требования и все функциональные модули, описываем категории пользователей системы и их возможности, утверждаем порядок оформления и приемки результата.

Получить коммерческое предложение

План-график работ

После оценки трудоемкости всех этапов разработки мобильного приложения, учитывая специфику проекта и внутренних процессов каждого клиента индивидуально, мы утверждаем план-график реализации проекта.

Получить коммерческое предложение

Разработка мобильного приложения

Разработка мобильного приложения - Поэтапная разработка мобильного приложения – эта наша культура производства. Она позволяет минимизировать временные и финансовые риски проекта за счет отлаженных процессов и последовательного согласования каждого отдельного этапа работ.

UX-дизайн

Продумываем взаимодействие между элементами дизайна, упрощаем взаимосвязи и делаем пользовательский опыт максимально положительным.

Получить коммерческое предложение

UI-дизайн

Проектируем простые и интуитивно понятные интерфейсы, которые помогают пользователям быстро выполнять нужные действия.

Получить коммерческое предложение

Разработка

Поэтапно разрабатываем мобильное приложение: проектируем серверную часть, параллельно строя архитектуру самого приложения.

Получить коммерческое предложение

Интеграция

Настраиваем обмен данными между веб-ресурсом, системами учета и сервисами.

Получить коммерческое предложение

Аналитика

Производим настройку отображения статистических данных о посетителях и их взаимодействии с элементами сайта (лид-формы, страницы, кнопки, переходы по ссылкам и много другое).

Получить коммерческое предложение

Тестирование

Проводим всестороннее тестирование продукта, разными способами проверяя его поведение во внештатных ситуациях.

Получить коммерческое предложение

Публикация

Помогаем опубликовать сервис в магазинах приложений App Store и Google Play, готовим необходимые материалы и консультируем по ASO.

Получить коммерческое предложение

Поддержка и развитие

Поддержка

Настраиваем систему контроля версий Git, выполняем все необходимые ежемесячные работы по согласованию с заказчиком, а также администрируем сервис.

Подробнее

Получить коммерческое предложение

Развитие

Разрабатываем новые функциональные модули для приложений

Получить коммерческое предложение

Оставьте заявку на консультацию

Технологический стек

Дизайн
Sketch, Figma
Back-end (серверная часть)
Laravel, Java, Python, PHP, Node.JS
Workflow
Zeplin, Miro
База данных
SQLite
iOS-разработка
SWIFT, Objective C
Аналитика
AppMetrica, Appsflyer, Google Аналитика для мобильных приложений
Android-разработка
Java, Kotlin
Автоматизация, автотесты
Jenkins, teamcity
Кроссплатформенные приложения
Flutter, React Native

Возможности

  • Нативные приложения

    Мобильное приложение, которое создается для определенной платформы и непосредственно устанавливается на устройство пользователя.

    Создание приложений для macOS/iPadOS/iOS и Android на рекомендованных к разработке Apple и Google языках программирования Swift и Kotlin.

  • Кроссплатформенные приложения

    Мобильные приложения, которые могут работать в различных операционных системах.

    Вы получаете одно приложение для двух платформ: iOS и Android. Загрузить приложение пользователь сможет через Apple AppStore, Google Play и HUAWEI AppGallery.

Возможности Возможности Возможности

Почему стоит выбрать Цифровой Элемент?

Мы разработаем для вас приложения, которое поможет быть уникальным на рынке и занимать лидирующие позиции.

Разработка мобильного приложения — это совместная работа отдела экспертов, которые нацелены на максимально качественное и быстрое решение ваших бизнес-задач.

...
Разрабатываем мобильные приложения на основании маркетингового анализа
...
Поддерживаем высокие стандарты технической поддержки и модернизации мобильных приложений
...
Обеспечиваем прозрачность работ с помощью собственного многофункционального личного кабинета
...
Разработка технической документации по ГОСТ
...
Интегрируем приложение сразу с несколькими системами
...
Комплексное обслуживание и поддержка мобильного приложения после его запуска

Особенности разработки мобильных приложений

  • Прозрачный контроль процесса на каждом этапе разработки

    персональный менеджер, осведомленность о всем процессе разработке, согласование каждой итерации

  • Возможности различных интеграций

    интеграция с 1С, ERP, SAP, платежными системами, способами аутентификации, системами аналитики и систем рассылок.

  • Поддержка и сопровождение после запуска мобильного приложения

    техническая поддержка, доработки, разработка нового функционала.

  • Публикация в Google Play и APP Store

    решение всех вопросов при публикации, дизайнерское оформление приложения на маркетплейсах с учетом всех требований и прохождение модерации.

Читайте в нашем блоге

Читайте в нашем блоге

Нагрузочное тестирование Java веб-приложений: подходы и инструменты
РАЗРАБОТКА
9 августа 2024
Нагрузочное тестирование Java веб-приложений: подходы и инструменты

При разработке веб-приложений один из важных этапов его тестирования - это нагрузочное тестирование. Это позволяет не только выявить возможные узкие места в системе, но и убедиться, что приложение способно выдерживать ожидаемое количество пользователей и запросов. Содержание 1. Понимание нагрузочного тестирования 2. Ключевые методики нагрузочного тестирования 3. Инструменты для нагрузочного тестирования Java веб-приложений 4. Пример нагрузочного тестирования с использованием Apache JMeter 5. Лучшие практики нагрузочного тестирования 6. Вывод 7.Пример протокола нагрузочного тестирования веб-приложения или сайта Понимание нагрузочного тестирования Нагрузочное тестирование — это процесс моделирования различных уровней пользовательской активности на веб-приложение для оценки его производительности. Основная задача этого тестирования заключается в том, чтобы понять, насколько эффективно система справляется с увеличивающимся трафиком и где находятся ее пределы. В результате нагрузочного тестирования выявляются точки отказа и определяется максимальная пропускная способность приложения. В прошлом мы уже рассматривали тему нагрузочного тестирования в статье, где детально обсудили основные инструменты и подходы к проверке производительности приложений. Если вам интересна более широкая картина, рекомендуем ознакомиться с той статьей. А в этом материале мы сосредоточимся на специфике нагрузочного тестирования Java веб-приложений, рассмотрим основные методики, инструменты и лучшие практики для достижения оптимальных результатов. Ключевые методики нагрузочного тестирования Пиковая нагрузка (Spike Testing): Данный метод тестирования направлен на оценку реакции системы на резкое увеличение нагрузки. Он помогает выявить, как приложение справляется с внезапными всплесками пользовательской активности. Длительное тестирование (Soak Testing): Метод заключается в проверке системы на ее способность функционировать под стабильной нагрузкой в течение длительного времени. Это позволяет обнаружить долгосрочные проблемы, такие как утечки памяти или сбои в подключении к базе данных. Стресс-тестирование (Stress Testing): Этот вид тестирования позволяет оценить работу приложения при нагрузке, которая превышает ожидаемую. Цель состоит в том, чтобы определить, на каком этапе система начинает сбоить и как быстро она восстанавливается после перегрузки. Постепенное увеличение нагрузки (Ramp-Up Testing): Здесь нагрузка на систему увеличивается плавно, пока не достигает заданного уровня. Такой подход помогает определить порог, при котором начинаются проблемы с производительностью. Инструменты для нагрузочного тестирования Java веб-приложений Apache JMeter: Популярный инструмент для проведения нагрузочного тестирования, который поддерживает множество протоколов, включая HTTP, HTTPS, SOAP и JDBC. JMeter предлагает широкий спектр возможностей для создания сложных тестовых сценариев и анализа результатов, что делает его универсальным решением для нагрузочного тестирования. shell # Запуск теста в JMeter jmeter -n -t test_plan.jmx -l results.jtl -e -o /path/to/output/folder Gatling: Этот инструмент, разработанный на языке Scala, отличается высокой производительностью и возможностью масштабирования. Gatling предоставляет удобный DSL для создания тестовых сценариев и мощные средства анализа, что делает его идеальным для сложных нагрузочных тестов. scala class BasicSimulation extends Simulation { val httpProtocol = http.baseUrl("http://localhost:8080") val scn = scenario("Basic Scenario") .exec(http("request_1").get("/")) setUp(scn.inject(atOnceUsers(1000)).protocols(httpProtocol)) } Locust: Написанный на Python, этот инструмент позволяет разрабатывать тестовые сценарии, используя знакомый разработчикам язык. Locust легко интегрируется с другими системами и дает возможность гибко управлять нагрузкой, что делает его удобным для использования в различных проектах. python from locust import HttpUser, TaskSet, task class UserBehavior(TaskSet): @task def index(self): self.client.get("/") class WebsiteUser(HttpUser): tasks = [UserBehavior] min_wait = 5000 max_wait = 9000 Apache Benchmark (ab): Этот легковесный инструмент предназначен для быстрого выполнения базовых тестов производительности веб-серверов. Он прост в использовании и подходит для быстрой оценки производительности приложений в условиях базовой нагрузки. shell # Запуск теста с 1000 запросами и 100 параллельными пользователями ab -n 1000 -c 100 http://localhost:8080/ Пример нагрузочного тестирования с использованием Apache JMeter Рассмотрим более подробно пример проведения нагрузочного тестирования Java веб-приложения с использованием Apache JMeter. Установка Apache JMeter: Скачайте и установите Apache JMeter с официального сайта. Запустите JMeter, используя команду jmeter в командной строке. Создание тестового плана: Откройте JMeter и создайте новый тестовый план. Добавьте Thread Group (Группу потоков), которая определяет количество пользователей (потоков), период разгона и количество циклов. // Пример настройки Thread Group ThreadGroup threadGroup = new ThreadGroup(); threadGroup.setName("Example Thread Group"); threadGroup.setNumThreads(100); // Количество пользователей threadGroup.setRampUp(10); // Время разгона (в секундах) threadGroup.setLoopCount(1); // Количество циклов Добавление элементов к тестовому плану: Добавьте HTTP Request Sampler, чтобы определить запросы к вашему веб-приложению. Укажите сервер, путь и другие параметры запроса. // Пример настройки HTTP Request Sampler HTTPSampler httpSampler = new HTTPSampler(); httpSampler.setDomain("example.com"); httpSampler.setPort(80); httpSampler.setPath("/api/test"); httpSampler.setMethod("GET"); Добавление слушателей для анализа результатов: Добавьте View Results Tree и Summary Report для визуализации результатов тестирования. // Пример настройки View Results Tree ViewResultsTree resultsTree = new ViewResultsTree(); testPlan.add(resultsTree); // Пример настройки Summary Report SummaryReport summaryReport = new SummaryReport(); testPlan.add(summaryReport); Запуск теста и анализ результатов: Запустите тестовый план и проанализируйте результаты, чтобы определить узкие места и потенциальные точки отказа. // Запуск теста JMeterEngine jmeterEngine = new StandardJMeterEngine(); jmeterEngine.configure(testPlan); jmeterEngine.run(); // Анализ результатов for (SampleResult result : resultsTree.getResults()) { System.out.println("Response time: " + result.getTime()); System.out.println("Response code: " + result.getResponseCode()); } Преобразование нагрузки в RPS вместо количества пользователей Если тестовый план выполняет запросы к адресам параллельно, нагрузка на каждый адрес может разниться. Для такого случая удобнее перевести нагрузку в RPS и указывать лишь общую подаваемую нагрузку, выраженную в количестве запросах в секунду. Порядок действий: В Apache Jmeter кликнуть на корневой элемент с тестовым планом. Добавить новую переменную load_msg_sec (наименование переменной может быть любым). В качестве значения переменной можно установить как константное значение, так и параметризованное. Рассмотрим параметризованное. Для того чтобы добавить параметризованное значение нужно в столбце value добавить следующее: ${__P(load, 50)} , где load - наименование параметра. 50 - значение по умолчанию. Далее в группу потока (Thread group) нужно добавить Constant Throughput Timer (RBM - Add - Timer - Constant Throughput Timer) В поле Target throughput (in samples per minute) указывается следующая формула: ${__jexl3(${load_msg_sec} *60 * #percent#)}, где ${load_msg_sec} - количество запросов в секунду из переменной load_msg_sec, 60 - перевод из запросов в секунду в запросы в минуту (поскольку таймер принимает количество запросов в минуту), #percent# - процент от общего количества запросов (при проведении теста параллельно по всем адресам) указывается на основе методики нагрузочного тестирования. Указание basic auth в Apache JMeter Если нужно выполнить нагрузку на тестовых стендах, которые обычно закрыты Basic Auth, обычный запуск теста приведет к перманентным ответам с http кодом 403. Чтобы это исправить, нужно выполнить следующие действия. К группе потоков (Thread Group) добавляется BeanShell PreProcessor (RBM - add - Pre Processors - BeanShell PreProcessor) со следующим кодом: import org.apache.commons.codec.binary.Base64; byte[] encodedUsernamePassword = Base64.encodeBase64("login:password".getBytes()); vars.put("base64HeaderValue",new String(encodedUsernamePassword)); К этой же группе потоков добавить HTTP Header Manager c заголовком Name: Authorization Value: Basic ${base64HeaderValue}, где ${base64HeaderValue} - переменная назначенная в препроцессоре Лучшие практики нагрузочного тестирования Реалистичные сценарии: Тестовые сценарии должны максимально точно отражать реальные условия использования приложения. Это позволяет более точно прогнозировать его поведение при эксплуатации и заранее выявлять потенциальные проблемы. Мониторинг и анализ: Во время проведения тестов важно использовать инструменты мониторинга, которые помогут отслеживать состояние системы и своевременно реагировать на возможные проблемы. Анализ данных позволяет выявить узкие места и оптимизировать систему для улучшения производительности. Регулярность тестирования: Нагрузочные тесты должны проводиться на постоянной основе, особенно после внесения значительных изменений в код или инфраструктуру. Это позволяет своевременно обнаруживать проблемы и поддерживать стабильную работу приложения. Интеграция с CI/CD: Включение нагрузочного тестирования в процессы непрерывной интеграции и доставки (CI/CD) обеспечивает автоматическую проверку производительности после каждого изменения в коде, что позволяет избегать введения проблем с производительностью в рабочую среду. Комбинирование инструментов: Использование нескольких инструментов для нагрузочного тестирования позволяет получить более полное представление о производительности приложения. Это помогает выявить различные аспекты поведения системы под нагрузкой и предложить более комплексные решения. Многоуровневое тестирование: Проведение тестов при различных уровнях нагрузки — от минимального до предельного — позволяет лучше понять, как приложение ведет себя в разных условиях, и выявить его пределы. Документирование и отчеты: Ведение детальной документации результатов тестирования и создание отчетов позволяют анализировать проделанную работу, выявлять тенденции и планировать дальнейшие улучшения. Оптимизация и настройка: После проведения тестов необходимо проводить оптимизацию системы, основываясь на полученных результатах. Это может включать в себя настройку серверов, оптимизацию запросов к базе данных и улучшение самого кода приложения. Сотрудничество с командой: Постоянное взаимодействие с командой разработки и другими заинтересованными сторонами способствует оперативному решению выявленных проблем и повышению качества продукта. Вывод Нагрузочное тестирование — важный этап в разработке и поддержке Java веб-приложений, который позволяет обеспечить их надежную и эффективную работу при различных уровнях нагрузки. Использование инструментов, таких как Apache JMeter, Gatling, Locust и Apache Benchmark, в сочетании с лучшими практиками тестирования, помогает выявить и устранить узкие места в системе, что позволяет поддерживать высокую производительность и стабильность работы приложений. В компании «Цифровой элемент» мы регулярно проводим нагрузочное тестирование для крупных и сложных проектов, гарантируя их стабильность и высокую производительность даже в условиях значительных нагрузок. Наша команда включает в себя опытных специалистов, которые глубоко понимают все аспекты процесса тестирования — от разработки реалистичных сценариев до анализа результатов и оптимизации системы. Для удобства мы разработали четкие процессы, позволяющие нам интегрировать нагрузочное тестирование в общую цепочку разработки и доставки программного обеспечения. Если вам необходимо провести нагрузочное тестирование вашего веб-приложения, мы готовы предложить вам полный спектр услуг — от анализа текущей производительности до разработки и реализации рекомендаций по её улучшению. Обращайтесь к нам, и мы поможем вам достичь наилучших результатов, обеспечив надежную работу вашего приложения при любых нагрузках. Пример протокола нагрузочного тестирования веб-приложения или сайта Документ описывает результаты проведения нагрузочного тестирования системы. Объект испытаний Объектом испытаний нагрузочного тестирования является система. Цели испытаний Проверка соответствия разработанной системы предъявляемым требованиям. Определение максимальной и пиковой производительности системы. Проверка стабильности работы разработанной системы в течение длительного промежутка времени под нагрузкой. Базовый профиль Базовый профиль тестирования подразумевает собой набор исследуемых объектов. Количество запросов рассчитано на основе требований к производительности системы и предполагаемого базового пользовательского пути. Код Требование Значение 1 Общее количество запросов к системе в месяц 30 000 000 2 Пиковое количество запросов в месяц не менее 3 300 000 3 Пиковое количество запросов в неделю не менее 900 000 4 Пиковое количество запросов в день не менее 110 000 5 Количество пользователей в месяц 300 000 6 Количество пользователей в неделю 60 000 7 Количество пользователей в день 10 000 Расчетное количество запросов в час берется равным, исходя из расчета максимального количества запросов: N запросов/ч = 30 000 000 / 30 / 24 = 41666.(6) ~= 42 000 запросов в час На основе CJM (Customer journey map) выделяются объекты образующие основную нагрузку: Объект URI Процент запросов в час Количество запросов в час Название объекта / 27% 11 340 Название объекта /…/ 15% 6 300 Название объекта /…/ 11% 4 620 Название объекта /…/ 5% 2 100 Название объекта /…/ 16% 6 720 Название объекта /…/ 5% 2 100 Название объекта /…/ 6% 2 520 Название объекта /…/ 15% 6 300 Нагрузку на объекты распределили пропорционально целевой аудитории. Запросы распределяются равномерно в течении часа, что дает общее количество запросов в секунду N запросов/cек = 42 000 / 60 / 60 = 11,(6) ~= 12 запросов в секунду План тестирования План тестирования представляет из себя следующие пункты: Разработка профиля нагрузочного тестирования; Настройка систем мониторинга; Разработка скриптов генерации нагрузки; Подготовка тестовых данных (например, вариации значения поисковой строки) + скрипт наполнения базы тестовыми данными для теста и их удаления по завершению; Проведение нагрузочных тестов; Анализ результатов нагрузочных тестов. Типы проводимых тестов Методикой предусматривается проведение следующих тестов: Поиск пиковой производительности Нагрузка: ступенчатая Начальная нагрузка: 40% Шаг: + 30% от базового профиля Продолжительность ступени: 30 минут или отказ Системы Критерий завершения теста: отказ Системы Критерий успешности теста: максимальная производительность системы выше значений базового профиля. Проверка стабильности работы системы Нагрузка: равномерная с плавным разгоном Максимальная нагрузка: Базовый профиль Время разгона: 15 мин. Длительность основного этапа - 4 часа Критерий завершения теста: истечение времени или Отказ Системы Критерий успешности: окончание по истечении времени Требования к производительности системы Требования к утилизации ресурсов во время тестов Утилизация ресурсов севера должна соответствовать следующим показателям: Утилизация CPU не более 80%; Утилизация RAM не более 80%. Требование сформировано на основании экспертной оценки, требований к Системе не предъявлено. Требования к количеству неуспешных запросов Количество Неуспешных запросов не должно превышать следующие показатели от интенсивности входящей нагрузки: Тест поиска максимальной производительности (последняя ступень) – 0,1%; Тест подтверждения максимальной производительности (в ходе всего теста)– 0,1%; Тест стабильности (в ходе всего теста)– 0,1% Период агрегации соответствует периоду постоянной нагрузки в каждом из тестов. Требования ко времени отклика и интенсивности типовых шагов бизнес операций 90% — 50 мс, 99% — 1000 мс, 99,9% — 2500 мс, Конфигурация стенда для НТ Компонент Значение CPU Cores (количество ядер) XX RAM (Размер ОЗУ в Гб) XXX Поиск максимальной производительности Максимальная производительность - нагрузка, выраженная в количестве обращений в секунду, превышающие границы утилизации ресурсов, описанных в разделе “Требования по утилизации ресурсов” настоящего документа.. Поиск максимальной производительности проводится в рамках нескольких тестов с пошаговым увеличением нагрузки относительно базового профиля. Шаг рассчитывается как: Шаг = Значение базового профиля * 0,4 = 4.8 => 5 - значение шага для увеличения нагрузки Продолжительность шага составляет 30 минут Первый шаг RPS CPU RAM Average (response, ms) Min (response, ms) Max (response, ms) Error % Результат 12 q/s 31,5% 6% 853 342 2332 0,01% Соответствует График результатов теста из jMeter График использования ЦПУ (Grafana) График использования ОЗУ Второй шаг RPS CPU RAM Average (response, ms) Min (response, ms) Max (response, ms) Error % Результат 17 q/s 44,8% 6% 823 339 3132 0,00% Соответствует График результатов теста из jMeter График использования ЦПУ (Grafana) График использования ОЗУ Третий шаг RPS CPU RAM Average (response, ms) Min (response, ms) Max (response, ms) Error % Результат 22 q/s 58,6% 6% 851 353 2041 0,00% Соответствует График результатов теста из jMeter График использования ЦПУ (Grafana) График использования ОЗУ Четвертый шаг RPS CPU RAM Average (response, ms) Min (response, ms) Max (response, ms) Error % Результат 27 q/s 73,6% 7% 841 337 2652 0,00% Соответствует График результатов теста из jMeter График использования ЦПУ (Grafana) График использования ОЗУ Пятый шаг RPS CPU RAM Average (response, ms) Min (response, ms) Max (response, ms) Error % Результат 32 q/s 88,0% 7% 764 342 2332 0,00% Значение CPU превышает допустимый порог, при этом процент отказа равен 0. Определяем производительность как максимальную График результатов теста из jMeter График использования ЦПУ (Grafana) График использования ОЗУ Вывод Максимальная производительность системы после проведенного теста на поиск составляет XXX запросов в секунду, что больше чем ожидаемая нагрузка на XXXX%. Система удовлетворяет описанным показателям производительности. Тест на стабильность системы Тест на стабильность выполняется с нагрузкой базового профиля продолжительное время. Время теста составляет 4 часа. RPS CPU RAM Average (response, ms) Min (response, ms) Max (response, ms) Error % Результат 12 q/s 33,6% 7% 503 343 4116 0,00% Соответствует График результатов теста из jMeter График использования ЦПУ (Grafana) График использования ОЗУ Вывод На протяжении 4 часов тестирования стабильности системы процент отказа составил 0%, нагрузка равномерно распределена. Система удовлетворяет описанным показателям производительности.

6 034
Как создать аккаунт разработчика в App Store, Google Play, AppGallery
Как создать аккаунт разработчика в App Store, Google Play, AppGallery

Перед тем, как опубликовать мобильное приложение в сторе, нужно зарегистрировать аккаунт разработчика. Мы поддерживаем клиента на протяжении всего пути работы над приложением, публикуем приложение в сторах. Но перед публикацией заказчик приложения должен сам зарегистрировать свой аккаунт разработчика – от его имени оно и будет опубликовано. Вопрос – как это сделать? В этой статье мы поделимчя подробным чек-листом по созданию аккаунта разработчика для трех главных магазинов мобильных приложений. Начнем с самого сложного – App Store! App Store Для регистрации вам понадобится: устройство от Apple (телефон, планшет или ноутбук). Физическим лицам Физические лица или ИП проходят авторизацию с помощью своего Apple ID. Вам будет необходимо предоставить основную личную информацию с юридическим именем и адресом. Не указывайте псевдоним или название компании вместо имени или фамилии. Неправильный ввод юридического имени организации может привести к задержке при утверждении регистрации. Юридическим лицам Для организаций название юридического лица будет указано в качестве продавца в App Store. При регистрации нужно указать имя юридического лица и DUNS-номер. Для публикации приложения потребуются: Статус юридического лица. Чтобы зарегистрироваться в программе Apple для разработчиков, ваша организация должна быть юридическим лицом, чтобы она могла заключать контракты с Apple. DUNS-номер. Это уникальные девятизначные номера присваиваются Dun & Bradstreet и широко используются в качестве стандартных бизнес-идентификаторов. Вы можете проверить, есть ли у вашей организации DUNS-номер и при необходимости запросить его. Эти номера бесплатны в большинстве юрисдикций. Юридически полномочия. Вы должны быть владельцем, основателем организации, членом исполнительной команды, старшим руководителем проекта или сотрудником с юридическими полномочиями, предоставленными вам старшим сотрудником. Веб-сайт. Веб-сайт компании должен быть общедоступным, а доменное имя – связано с названием компании. Перед тем, как создать аккаунт разработчика в App Store необходимо проверить если у вас Apple ID. Если Apple ID у вас уже есть, то для дальнейшей регистрации аккаунта потребуется: доступ к привязанному к Apple ID номеру телефона; ответы на все проверочные вопросы, заданные при регистрации Apple ID. В случае, если некоторые данные утеряны, лучше завести новый Apple ID. После того, как вы зарегистрировали новый или вошли в свой Apple ID, можно приступать к регистрации аккаунта разработчика. Для этого скачайте приложение Apple для разработчиков или посетите веб-версию. Ознакомьтесь с пользовательским соглашением компании Apple и установите флажок, подтверждающий, что вы его прочитали, и нажмите «Отправить». Проверьте, что вся указанная контактная информация верна (e-mail, имя, адрес), затем выберите юридическое лицо. Заполните все контактные данные для вашей учетной записи разработчика. Ознакомьтесь с Лицензионным соглашением Apple Developer Program, установите флажок и нажмите «Продолжить». Подтвердите, что вся ранее введенная информация верна, и нажмите продолжить. Нажмите «Приобрести», чтобы зарегистрироваться и оплатить годовой аккаунт разработчика iOS. Не забудьте установить флажок «Автоматическое продление», если вы хотите, чтобы ваше членство продлевалось автоматически. Войдите в систему с помощью своего Apple ID и заполните платежную информацию. Затем нажмите «Продолжить», чтобы завершить настройку учетной записи разработчика iOS. Заполните оставшуюся информацию на следующих страницах. В течение 24 часов вы получите электронное письмо с подтверждением от Apple с сообщением, что настройка вашей учетной записи разработчика iOS прошла успешно. Как только ваша учетная запись разработчика iOS будет полностью настроена, введите информацию о вашей учетной записи разработчика iOS в CMS в разделе «Опубликовать» Ежегодная стоимость участия в программе Apple для разработчиков – $99, а годовая плата за участие в корпоративной программе Apple для разработчиков – $299. Google Play Чтобы публиковать приложения в Google Play, сначала необходимо создать учетную запись разработчика. Для создания аккаунта разработчика используйте свой обычный аккаунт Google. Обязательно включите двухфакторную аутентификацию. Выберите тип аккаунта разработчика. Аккаунт организации Для создания аккаунта организации необходимо указать: Номер DUNS.Это уникальный девятизначный номер в регистре компании Dun&Bradstreet, который используется в качестве международного идентификатора организаций. По номеру DUNS Google проверяет вашу организацию. Вам необходимо подтвердить информацию, которую Google получается от компании Dun&Bradstreet, предоставив официальный документ от вашей организации. Контактный телефон и адрес электронной почты для пользователей Google Play. Пользователи будут видеть эту информацию в Google Play и смогут с её помощью связаться с вами. Адрес и контактный телефон нужно подтвердить с помощью кода. Контактный телефон и адрес электронной почты для Google. Google будет использовать эти сведения, если потребуется связаться с разработчиками. Пользователи Google Play их не увидят. Адрес и контактный телефон нужно подтвердить с помощью кода. Способ оплаты. Нужен, чтобы оплатить единоразовый регистрационный взнос в размере 25 долларов США. Личный аккаунт Для создания личной учетной записи необходимо указать: Имя разработчика, которое будет отображается пользователям в Google Play; Контактное лицо; Адрес электронной почты, который будет необходимо подтвердить; Адрес; Контактный номер телефона, который необходимо подтвердить; Веб-сайт или ссылка на соц.сети. Примите соглашение о распространении программных продуктов. Оплатите регистрационный взнос. Единоразовый регистрационный взнос – $25. К оплате принимаются карты: MasterCard Visa American Express Discover (только для США) Visa Electron (только за пределами США) После оплаты у вас появится доступ к Google Play Console и можно будет загружать приложение. AppGallery В AppGallery, как и в предыдущих магазинах приложение, есть два режима регистрации: для физического лица (индивидуального разработчика); для юридического лица (компании). Индивидуальным разработчикам Регистрация аккаунта разработчика в системе HUAWEI Developer проходит бесплатно. Для подтверждения и активации аккаунта требуется указать персональные данные: полный домашний адрес; номер телефона; сканы документа, удостоверяющего личность, и сканы банковской карты (в качестве документа, удостоверяющего личность, можно использовать паспорт или водительское удостоверение). В среднем проверка аккаунта разработчика может занимать от 1 до 2 дней. Если проверка задерживается, можно обратиться в техническую поддержку, которая обрабатывает запросы в том числе на русском языке. Юридическим лицам При регистрации компании в Huawei, как и в App Store, для идентификации используется D-U-N-S номер. Для его получения у российских компаний в среднем уходит пара недель. Российские компании также могут быть зарегистрированы с использованием ОГРН. Следующий шаг после регистрации аккаунта разработчика – публикация мобильного приложения в AppGallery. Если вы хотите создать приложение или уже находитесь в стадии разработки, напишите нам! Наша команда может подключиться на любом этапе работы над проектом. Что такое DUNS number? D-U-N-S номер – это специальный идентификатор компании в информационной базе D&B, по которому вашу компанию можно будет найти в международном справочнике. При внесении вашей компании в справочник, сотрудники агентства проверят вашу компанию (проводится проверка, что компания действительно существует, срок существования, наличие компании по заявленному адресу офиса, количество сотрудников и так далее). Скажем так, регистрация вашей компании в каталоге D&B это первый шаг на пути к тому, чтобы получить подтверждение благонадежности вашей компании от авторитетной международной организации. При осуществлении внешнеторговых сделок одним из самых существенных факторов выбора зарубежного партнера является его благонадежность. К примеру, если ваша компания осуществляет экспорт продукции, произведенной в России и вы заинтересованы в привлечении новых торговых партнеров, вам нужно дать возможность убедиться вашим потенциальным покупателям в том, что ваша компания не является однодневкой и не исчезнет сразу после получения предоплаты за заказ. Как продавец и покупатель из разных стран могут проверить благонадежность друг друга? В мировой практике, для проверки контрагента участники рынка используют информацию от международных кредитно-рейтинговых агентств. Данные агентства собирают информацию о компаниях – юридических лицах, и осуществляют проверку из благонадежности, финансовое состояние и оценку рисков, которые могут возникнуть при работе с этими компаниями. Одним из крупнейших агентств, предоставляющих эти услуги, является агентство dun&bradstreet. На территории Российской Федерации оно представлено в виде совместного предприятия "Интерфакс - Дан энд Брэдстрит". Данное агентство предоставляет кредитные отчеты, которыми пользуются коммерческие организации (продавцы и покупатели товара), а также профессиональные игроки рынка – например некоторые Экспортно-Кредитные Агентства. К примеру, если вы собираетесь покупать продукцию у поставщика из Польши, Италии, Португалии или Турции, вы можете заказать кредитный отчет на данного поставщика, чтобы убедиться в надежности его компании. Как получить D-U-N-S номер бесплатно? Когда мы решили, что нашей компании нужно получить D-U-N-S номер, мы обратились в российское отделение и обнаружили, что стоимость регистрации и получения номера составляет 12 240 рублей. (Уточняйте стоимость, она могла измениться). Обычно такая регистрация производится бесплатно, в чем мы убедились, посетив международный сайт агентства – dnb.com Для регистрации вашей компании вам нужно пройти по ссылке: https://support.dnb.com/Support_Home и зарегистрировать себя и свою компанию. В течение 30 дней вам будет присвоен D-U-N-S номер, который вы можете опубликовать у себя на сайте и прикрепить в подписи к e-mail. По нашей практике, наличие D-U-N-S номера повышает уровень доверия к компании со стороны иностранных партнеров – особенно европейских и американских компаний, так как дает возможность иностранному партнеру моментально получить доступ к информации о вашей компании из авторитетного источника и убедиться в ее благонадежности. Как оплатить регистрацию аккаунтов разработчика в России Apple Developer Google более лоялен в плане модерации, а Apple — в оплате сервисов. На данный момент существует три рабочих способа для оплаты лицензии Apple Developer для пользователей из России. Про один из них — это оплата с помощью баланса мобильного телефона. Способ все еще рабочий, но благодаря вашим отзывам мы выделили несколько важных моментов: Работает только с МТС и Билайн. У других сотовых операторов приостановлена опция оплаты сервисов Apple; Оплата не всегда проходит с первого раза, может потребоваться несколько попыток, прежде чем Apple примет ваши деньги (вот же вредные!); Подходит только для продления лицензии, оплачивать новую придется другим способом; Способ номер два. Завести карту иностранного банка и проводить оплаты с помощью нее, используя VPN. Третий вариант: купить уже существующий аккаунт разработчика через сторонние площадки или группы в Telegram. Покупка обойдется в 200-300$ и обеспечит вам рабочий аккаунт, однако через год подписку нужно будет продлить и снова столкнуться с проблемой оплаты. Google Play Единственный рабочий вариант для этой платформы — использовать карту иностранного банка для оплаты. Для этого понадобится привязать платежный профиль пользователя к другой стране по IP пользователя и банковской карте. Включить на устройстве VPN той страны, где была получена карта (иногда перед включением VPN требуется выйти из аккаунта); Войти в аккаунт и выбрать раздел «Настройки» профиля; Нажать на кнопку «Общие»; Перейти в «Настройки аккаунта и устройства»; Нажать на «Страна и профили»; В открывшемся списке выбрать название необходимой страны, с которой будет связан профиль; Привязать карту в настройках аккаунта.

15K
Flutter или нативная разработка?
Flutter или нативная разработка?

Для масштабирования проекта под разные варианты устройств можно применить кроссбраузерность или воспользоваться нативной разработкой. У каждого из этих способов есть свои преимущества. Но что выбрать для конкретного проекта? В нашей статье мы разберём особенности кроссбраузерного фреймворка Flutter и его отличия от нативного метода. Суть подходов Flutter появился в 2018 году и быстро обрёл популярность среди разработчиков. С его помощью легко создавать компоненты UX и плавные анимации. Нативное приложение – это разработка под iOS и Android. Создаётся на специальных языках, которое используется на конкретной оперативной системе. Для iOS это Swift и Objective-C. А для Android – Java, Kotlin. Технология позволяет реализовать сложную функциональность. Однако, под каждую платформу приходится вести разработку отдельно. Поэтому в последнее время чаще выбирают более гибкий Flutter. Flutter более экономичен: разработчики пишут единый код сразу для обеих платформ. Код при этом более простой, его легко осваивают даже начинающие специалисты. А для нативных приложений код должен быть отдельным под каждую платформу. Разработка на Flutter сокращает время на создание приложения. Если сравнивать работу готовых продуктов, то загрузка нативного приложения происходит гораздо быстрее, но такое приложение использует намного больше памяти устройства. Заказать готовое мобильное приложение Заказать услугу Техническая поддержка Поддерживать нативное приложение достаточно сложно: Необходимо вносить изменения в две кодовые базы и следить, чтобы они были актуальными и работали корректно. Обновления также нужно разрабатывать для двух приложений. На сложность поддержки влияет количество устройств, которые поддерживают ОС. Поддерживать приложения на Flutter гораздо проще, прежде всего потому, что код один и ошибки нужно искать только в этом коде. Мы уже писали, что код достаточно простой, потому баги там находятся легко. Этому способствует наличие большое библиотеке, где описаны все возможные баги и способы их решения. А также можно применить технологию Hot Reload для моментального устранения ошибок. Интеграции с другими сервисами Единственный момент, который может вызвать сложности у разработчиков – моменты интеграции. На Swift и Kotlin можно быстро и безопасно проводить интеграции со всевозможными сторонними сервисами. Интеграция с Swift iOS происходит проще, приходится совершать меньшее число настроек, впрочем, некоторые сторонние сервисы легче интегрируются на Android, чем на iOS. На Flutter интеграцию можно производить с помощью сторонних плагинов, библиотек. Однако есть моменты, которые могут вызвать сложности у начинающих разработчиков. К сожалению движок обладает некоторыми ограничениями, но вы можете воспользоваться документацией, в которой описаны действия разработчиков в этом случае. Несмотря на описанные недочёты, интеграция на Flutter может пройти быстрее, так как достаточно разобраться с одним кодом и найти одно решение. Стоимость разработки Логично, что для написания нативных приложений требуется 2 команды: те, что специализируются на iOS разработке, и те, что проектируют Android-сервисы. Flutter разработка подразумевает одну команду, работающую в комплексе. Сценарии использования Выбор того или иного способа разработки зависит от варианта дальнейшего использования. Нативная разработка Flutter Приложения с дополненной реальностью; Приложения со сложным UI; Приложения на основе искусственного интеллекта; Игры; Приложения для вещей (умный дом, кошельки, ТВ); Навигаторы; Использование сложной анимации; Приложения для путешествий. Приложение с фичами, которые активно взаимодействуют с ОС; Сложные плагины с простой логикой; Гибкий UI с высокоуровневыми виджетами; Реактивные приложения с интеграцией больших данных; Приложения с графическим движком Skia; Мобильный банк; Интернет-магазины; Интернет-аптеки; Личные кабинеты; Интранет-порталы. То есть, нативные приложения следует выбирать для уникальных сложных разработок, которые требуют интеграции большого количества данных. Однако, если необходимо быстро запустить приложение, то лучше выбирать разработку на Flutter. С помощью приложений на Flutter вы быстро реализуете финансово-технические проекты, чему способствует безопасность банковских платформ. Вывод По итогу мы можем сказать, что ни Flutter, ни нативные технологии не являются панацеей. Мы не говорим, что разработка на Flutter – универсальное решение, или наоборот, что нативные технологии являются идеальным выходом для бизнес-приложений. Преимущества Flutter в его быстрой разработке и меньших расходах, что при прочих равных может оказаться действительно выгодным и удобным для заказчика. Специалисты компании «Цифровой Элемент» могут провести разработку как используя кроссбраузерный фреймворк, так и применяя нативные технологии. Выбор метода зависит от целей клиента. Уже на первых встречах мы выясняем то, как планируется использовать приложение, какие интеграции нужно сделать, какие сервисы подключать и т.д. На основании собранной информации мы будем рекомендовать тот или иной способ разработки, объясняя клиенту все его преимущества для конкретного проекта. Заказать разработку приложения Заказать услугу

4 470

Отзывы клиентов

Сотрудничая с крупными госкорпорациями и лидерами Российских рынков, мы выработали высокие стандарты к выполнению задач на всех этапах разработки и составления проектной документации.

Национальная Страховая Информационная система
Национальная Страховая Информационная система
Акционерное Общество «Национальная Страховая Информационная Система» (АО «НСИС»)
АО «НСИС» выражает искреннюю благодарность компании «Цифровой элемент» за успешное сотрудничество и профессиональный подход к реализации проекта по разработке и доработке функциональности информационного технологического портала в сфере страхования. Благодаря высокому уровню экспертизы, оперативности и ответственности на всех этапах работы был создан современный, удобный и технологичный портал nsis.ru, предоставляющий пользователям широкий спектр услуг, включая универсальный децентрализованный личный кабинет с персонализированным контентом.
Читать далее
Центр Здоровья НЛМК
Центр Здоровья НЛМК
Ассоциация «Новолипецкий медицинский центр»
«Центр здоровья НЛМК» выражает свою благодарность за качественное выполнение работ по модернизации официального сайта нашей компании. Стоит отметить, что эффективная организация рабочего процесса, профессионализм команды и гибкость в разрешении нестандартной ситуаций, способность решать сложные задачи в сжатые сроки обеспечили своевременное выполнение всех задач по проекту.
Читать далее
АО «СОГАЗ»
АО «СОГАЗ»
АО «Страховое общество газовой промышленности»
АО «Страховое общество газовой промышленности» благодарит команду ООО «Цифровой Элемент» за успешное выполнение проекта по разработке онлайн сервиса подачи и урегулирования претензий в личном кабинете АО «СОГАЗ». Мы ценим оперативность и качество выполнения задач в рамках технического задания и условий договора. Специалисты вашей компании продемонстрировали высокий профессионализм и компетентность при решении поставленных целей.
Читать далее
АО «Российский экспортный центр»
АО «Российский экспортный центр»
Российский центр поддержки экспорта
АО «Российский экспортный центр» выражает благодарность команде ООО «Цифровой Элемент» за успешную реализацию проекта по модернизации официального сайта АО «Российский экспортный центр», за оперативность решения рабочих задач и за высокую инициативу в поиске и применении технологических улучшений для нашего проекта.
Читать далее